package com.example.demo.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.Map;

/**
 * @author xwq
 * @version 1.0
 * @date 2022/9/22 15:42
 * @describe 要素Mongo实体
 * @since JDK 1.8
 */
@Data
@Document(collection = "wdm_element")
public class Element {

	/**
	 * 主键
	 */
	@Id
	private String id;
	/**
	 * 数据类型
	 */
	private String type;

	/**
	 * 名称
	 */
	private String name;

	/**
	 * 描述
	 */
	private String description;

	/**
	 * 所有者
	 */
	@Field("owning_user")
	private Long owningUser;

	/**
	 * 所有者部门
	 */
	@Field("owning_dept")
	private Long owningDept;

	/**
	 * 签出人
	 */
	@Field("checkedOutUser")
	private Long checked_out_user;

	/**
	 * 签出时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@Field("checked_out_time")
	private LocalDateTime checkedOutTime;

	/**
	 * 是否签出
	 */
	@Field("checked_out_mark")
	private Integer checkedOutMark;

	/**
	 * 密级
	 */
	@Field("secret_level")
	private String secretLevel;

	/**
	 * 数据柜
	 */
	private String cabinet;

    /**
     * 集成次序
     */
    @Field("int_order")
    private String intOrder;
	/**
	 * 租户ID
	 */
	@Field("tenant_id")
	private String tenantId;

	/**
	 * 扩展数据
	 */
	@Field("json_data")
	private Map<String, Object> jsonData;
}
